print: Install headers in a subdir
authorMatthias Clasen <mclasen@redhat.com>
Wed, 7 Jun 2023 02:45:02 +0000 (22:45 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 7 Jun 2023 03:16:09 +0000 (23:16 -0400)
This is a first step towards isolating the printing
code within gtk.

23 files changed:
gtk/gtk.h
gtk/gtkpagesetup.c
gtk/gtkpagesetup.h [deleted file]
gtk/gtkpagesetupunixdialog.c
gtk/gtkpapersize.c
gtk/gtkpapersize.h [deleted file]
gtk/gtkprintcontext.h [deleted file]
gtk/gtkprintoperation-portal.c
gtk/gtkprintoperation-portal.h
gtk/gtkprintoperation-private.h
gtk/gtkprintoperation.h [deleted file]
gtk/gtkprintoperationpreview.c
gtk/gtkprintoperationpreview.h [deleted file]
gtk/gtkprintsettings.c
gtk/gtkprintsettings.h [deleted file]
gtk/meson.build
gtk/print/gtkpagesetup.h [new file with mode: 0644]
gtk/print/gtkpapersize.h [new file with mode: 0644]
gtk/print/gtkprintcontext.h [new file with mode: 0644]
gtk/print/gtkprintoperation.h [new file with mode: 0644]
gtk/print/gtkprintoperationpreview.h [new file with mode: 0644]
gtk/print/gtkprintsettings.h [new file with mode: 0644]
gtk/print/meson.build [new file with mode: 0644]

index 8ad4e38902a844c4ae367f29877cce627be921ed..c5f9b4b583449fc5f3226307d1ccc4a3ce0ae1c7 100644 (file)
--- a/gtk/gtk.h
+++ b/gtk/gtk.h
 #include <gtk/gtkoverlay.h>
 #include <gtk/gtkoverlaylayout.h>
 #include <gtk/gtkpadcontroller.h>
-#include <gtk/gtkpagesetup.h>
+#include <gtk/print/gtkpagesetup.h>
 #include <gtk/gtkpaned.h>
-#include <gtk/gtkpapersize.h>
+#include <gtk/print/gtkpapersize.h>
 #include <gtk/gtkpasswordentry.h>
 #include <gtk/gtkpasswordentrybuffer.h>
 #include <gtk/gtkpicture.h>
 #include <gtk/gtkpopover.h>
 #include <gtk/gtkpopovermenu.h>
 #include <gtk/gtkpopovermenubar.h>
-#include <gtk/gtkprintcontext.h>
-#include <gtk/gtkprintoperation.h>
-#include <gtk/gtkprintoperationpreview.h>
-#include <gtk/gtkprintsettings.h>
+#include <gtk/print/gtkprintcontext.h>
+#include <gtk/print/gtkprintoperation.h>
+#include <gtk/print/gtkprintoperationpreview.h>
+#include <gtk/print/gtkprintsettings.h>
 #include <gtk/gtkprogressbar.h>
 #include <gtk/gtkrange.h>
 #include <gtk/gtkrecentmanager.h>
index 588e43d8e7c99c28c085e53ad8522bd4c909f5e9..5e77236127be71c68aab093edbf3ab06105c4e01 100644 (file)
@@ -18,9 +18,9 @@
 
 #include "config.h"
 
-#include "gtkpagesetup.h"
+#include "print/gtkpagesetup.h"
 #include "gtkprintutilsprivate.h"
-#include "gtkprintoperation.h" /* for GtkPrintError */
+#include "print/gtkprintoperation.h" /* for GtkPrintError */
 #include <glib/gi18n-lib.h>
 #include "gtktypebuiltins.h"
 
diff --git a/gtk/gtkpagesetup.h b/gtk/gtkpagesetup.h
deleted file mode 100644 (file)
index 770db79..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/* GTK - The GIMP Toolkit
- * gtkpagesetup.h: Page Setup
- * Copyright (C) 2006, Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-
-#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
-#include <gtk/gtkpapersize.h>
-
-
-G_BEGIN_DECLS
-
-typedef struct _GtkPageSetup GtkPageSetup;
-
-#define GTK_TYPE_PAGE_SETUP    (gtk_page_setup_get_type ())
-#define GTK_PAGE_SETUP(obj)    (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PAGE_SETUP, GtkPageSetup))
-#define GTK_IS_PAGE_SETUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PAGE_SETUP))
-
-GDK_AVAILABLE_IN_ALL
-GType              gtk_page_setup_get_type          (void) G_GNUC_CONST;
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup *     gtk_page_setup_new               (void);
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup *     gtk_page_setup_copy              (GtkPageSetup       *other);
-GDK_AVAILABLE_IN_ALL
-GtkPageOrientation gtk_page_setup_get_orientation   (GtkPageSetup       *setup);
-GDK_AVAILABLE_IN_ALL
-void               gtk_page_setup_set_orientation   (GtkPageSetup       *setup,
-                                                    GtkPageOrientation  orientation);
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *     gtk_page_setup_get_paper_size    (GtkPageSetup       *setup);
-GDK_AVAILABLE_IN_ALL
-void               gtk_page_setup_set_paper_size    (GtkPageSetup       *setup,
-                                                    GtkPaperSize       *size);
-GDK_AVAILABLE_IN_ALL
-double             gtk_page_setup_get_top_margin    (GtkPageSetup       *setup,
-                                                    GtkUnit             unit);
-GDK_AVAILABLE_IN_ALL
-void               gtk_page_setup_set_top_margin    (GtkPageSetup       *setup,
-                                                    double              margin,
-                                                    GtkUnit             unit);
-GDK_AVAILABLE_IN_ALL
-double             gtk_page_setup_get_bottom_margin (GtkPageSetup       *setup,
-                                                    GtkUnit             unit);
-GDK_AVAILABLE_IN_ALL
-void               gtk_page_setup_set_bottom_margin (GtkPageSetup       *setup,
-                                                    double              margin,
-                                                    GtkUnit             unit);
-GDK_AVAILABLE_IN_ALL
-double             gtk_page_setup_get_left_margin   (GtkPageSetup       *setup,
-                                                    GtkUnit             unit);
-GDK_AVAILABLE_IN_ALL
-void               gtk_page_setup_set_left_margin   (GtkPageSetup       *setup,
-                                                    double              margin,
-                                                    GtkUnit             unit);
-GDK_AVAILABLE_IN_ALL
-double             gtk_page_setup_get_right_margin  (GtkPageSetup       *setup,
-                                                    GtkUnit             unit);
-GDK_AVAILABLE_IN_ALL
-void               gtk_page_setup_set_right_margin  (GtkPageSetup       *setup,
-                                                    double              margin,
-                                                    GtkUnit             unit);
-
-GDK_AVAILABLE_IN_ALL
-void gtk_page_setup_set_paper_size_and_default_margins (GtkPageSetup    *setup,
-                                                       GtkPaperSize    *size);
-
-/* These take orientation, but not margins into consideration */
-GDK_AVAILABLE_IN_ALL
-double             gtk_page_setup_get_paper_width   (GtkPageSetup       *setup,
-                                                    GtkUnit             unit);
-GDK_AVAILABLE_IN_ALL
-double             gtk_page_setup_get_paper_height  (GtkPageSetup       *setup,
-                                                    GtkUnit             unit);
-
-
-/* These take orientation, and margins into consideration */
-GDK_AVAILABLE_IN_ALL
-double             gtk_page_setup_get_page_width    (GtkPageSetup       *setup,
-                                                    GtkUnit             unit);
-GDK_AVAILABLE_IN_ALL
-double             gtk_page_setup_get_page_height   (GtkPageSetup       *setup,
-                                                    GtkUnit             unit);
-
-/* Saving and restoring page setup */
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup     *gtk_page_setup_new_from_file     (const char          *file_name,
-                                                    GError              **error);
-GDK_AVAILABLE_IN_ALL
-gboolean          gtk_page_setup_load_file         (GtkPageSetup        *setup,
-                                                    const char          *file_name,
-                                                    GError             **error);
-GDK_AVAILABLE_IN_ALL
-gboolean          gtk_page_setup_to_file           (GtkPageSetup        *setup,
-                                                    const char          *file_name,
-                                                    GError             **error);
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup     *gtk_page_setup_new_from_key_file (GKeyFile            *key_file,
-                                                    const char          *group_name,
-                                                    GError             **error);
-GDK_AVAILABLE_IN_ALL
-gboolean           gtk_page_setup_load_key_file     (GtkPageSetup        *setup,
-                                                    GKeyFile            *key_file,
-                                                    const char          *group_name,
-                                                    GError             **error);
-GDK_AVAILABLE_IN_ALL
-void              gtk_page_setup_to_key_file       (GtkPageSetup        *setup,
-                                                    GKeyFile            *key_file,
-                                                    const char          *group_name);
-
-GDK_AVAILABLE_IN_ALL
-GVariant          *gtk_page_setup_to_gvariant       (GtkPageSetup        *setup);
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup      *gtk_page_setup_new_from_gvariant (GVariant            *variant);
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPageSetup, g_object_unref)
-
-G_END_DECLS
-
index e9f5cfd6ab06d9e0e8909319305473af6c6336dc..c0de95de557ee339c65a0c49fc51ab4c65c9cd53 100644 (file)
@@ -33,7 +33,7 @@
 #include "gtkpagesetupunixdialog.h"
 #include "gtkcustompaperunixdialog.h"
 #include "gtkprintbackendprivate.h"
-#include "gtkpapersize.h"
+#include "print/gtkpapersize.h"
 #include "gtkprintutilsprivate.h"
 #include "deprecated/gtkdialogprivate.h"
 
index 97bd96d49c9efd19dea25106e119ac24cd6f31f0..20fa327a6484df136236218a55a03c75ed36d418 100644 (file)
@@ -26,9 +26,9 @@
 #endif
 #include <math.h>
 
-#include "gtkpapersize.h"
+#include "print/gtkpapersize.h"
 #include "gtkprintutilsprivate.h"
-#include "gtkprintoperation.h"  /* for GtkPrintError */
+#include "print/gtkprintoperation.h"  /* for GtkPrintError */
 #include <glib/gi18n-lib.h>
 
 /* _gtk_load_custom_papers() only on Unix so far  */
diff --git a/gtk/gtkpapersize.h b/gtk/gtkpapersize.h
deleted file mode 100644 (file)
index 6aaf2d7..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-/* GTK - The GIMP Toolkit
- * gtkpapersize.h: Paper Size
- * Copyright (C) 2006, Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-
-#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
-#include <gdk/gdk.h>
-#include <gtk/gtkenums.h>
-
-
-G_BEGIN_DECLS
-
-typedef struct _GtkPaperSize GtkPaperSize;
-
-#define GTK_TYPE_PAPER_SIZE    (gtk_paper_size_get_type ())
-
-/* Common names, from PWG 5101.1-2002 PWG: Standard for Media Standardized Names */
-/**
- * GTK_PAPER_NAME_A3:
- *
- * Name for the A3 paper size.
- */
-#define GTK_PAPER_NAME_A3 "iso_a3"
-
-/**
- * GTK_PAPER_NAME_A4:
- *
- * Name for the A4 paper size.
- */
-#define GTK_PAPER_NAME_A4 "iso_a4"
-
-/**
- * GTK_PAPER_NAME_A5:
- *
- * Name for the A5 paper size.
- */
-#define GTK_PAPER_NAME_A5 "iso_a5"
-
-/**
- * GTK_PAPER_NAME_B5:
- *
- * Name for the B5 paper size.
- */
-#define GTK_PAPER_NAME_B5 "iso_b5"
-
-/**
- * GTK_PAPER_NAME_LETTER:
- *
- * Name for the Letter paper size.
- */
-#define GTK_PAPER_NAME_LETTER "na_letter"
-
-/**
- * GTK_PAPER_NAME_EXECUTIVE:
- *
- * Name for the Executive paper size.
- */
-#define GTK_PAPER_NAME_EXECUTIVE "na_executive"
-
-/**
- * GTK_PAPER_NAME_LEGAL:
- *
- * Name for the Legal paper size.
- */
-#define GTK_PAPER_NAME_LEGAL "na_legal"
-
-GDK_AVAILABLE_IN_ALL
-GType gtk_paper_size_get_type (void) G_GNUC_CONST;
-
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *gtk_paper_size_new          (const char   *name);
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *gtk_paper_size_new_from_ppd (const char   *ppd_name,
-                                          const char   *ppd_display_name,
-                                          double        width,
-                                          double        height);
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *gtk_paper_size_new_from_ipp (const char   *ipp_name,
-                                          double        width,
-                                          double        height);
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *gtk_paper_size_new_custom   (const char   *name,
-                                          const char   *display_name,
-                                          double        width,
-                                          double        height,
-                                          GtkUnit       unit);
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *gtk_paper_size_copy         (GtkPaperSize *other);
-GDK_AVAILABLE_IN_ALL
-void          gtk_paper_size_free         (GtkPaperSize *size);
-GDK_AVAILABLE_IN_ALL
-gboolean      gtk_paper_size_is_equal     (GtkPaperSize *size1,
-                                          GtkPaperSize *size2);
-
-GDK_AVAILABLE_IN_ALL
-GList        *gtk_paper_size_get_paper_sizes (gboolean include_custom);
-
-/* The width is always the shortest side, measure in mm */
-GDK_AVAILABLE_IN_ALL
-const char *gtk_paper_size_get_name         (GtkPaperSize *size);
-GDK_AVAILABLE_IN_ALL
-const char *gtk_paper_size_get_display_name (GtkPaperSize *size);
-GDK_AVAILABLE_IN_ALL
-const char *gtk_paper_size_get_ppd_name     (GtkPaperSize *size);
-
-GDK_AVAILABLE_IN_ALL
-double   gtk_paper_size_get_width        (GtkPaperSize *size, GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-double   gtk_paper_size_get_height       (GtkPaperSize *size, GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_paper_size_is_custom        (GtkPaperSize *size);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_paper_size_is_ipp           (GtkPaperSize *size);
-
-/* Only for custom sizes: */
-GDK_AVAILABLE_IN_ALL
-void    gtk_paper_size_set_size                  (GtkPaperSize *size, 
-                                                  double        width, 
-                                                  double        height, 
-                                                  GtkUnit       unit);
-
-GDK_AVAILABLE_IN_ALL
-double gtk_paper_size_get_default_top_margin     (GtkPaperSize *size,
-                                                 GtkUnit       unit);
-GDK_AVAILABLE_IN_ALL
-double gtk_paper_size_get_default_bottom_margin  (GtkPaperSize *size,
-                                                 GtkUnit       unit);
-GDK_AVAILABLE_IN_ALL
-double gtk_paper_size_get_default_left_margin    (GtkPaperSize *size,
-                                                 GtkUnit       unit);
-GDK_AVAILABLE_IN_ALL
-double gtk_paper_size_get_default_right_margin   (GtkPaperSize *size,
-                                                 GtkUnit       unit);
-
-GDK_AVAILABLE_IN_ALL
-const char *gtk_paper_size_get_default (void);
-
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *gtk_paper_size_new_from_key_file (GKeyFile    *key_file,
-                                               const char *group_name,
-                                               GError     **error);
-GDK_AVAILABLE_IN_ALL
-void     gtk_paper_size_to_key_file            (GtkPaperSize *size,
-                                               GKeyFile     *key_file,
-                                               const char   *group_name);
-
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *gtk_paper_size_new_from_gvariant (GVariant     *variant);
-GDK_AVAILABLE_IN_ALL
-GVariant     *gtk_paper_size_to_gvariant       (GtkPaperSize *paper_size);
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPaperSize, gtk_paper_size_free)
-
-G_END_DECLS
-
diff --git a/gtk/gtkprintcontext.h b/gtk/gtkprintcontext.h
deleted file mode 100644 (file)
index 3c09c36..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/* GTK - The GIMP Toolkit
- * gtkprintcontext.h: Print Context
- * Copyright (C) 2006, Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-
-#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
-#include <pango/pango.h>
-#include <gtk/gtkpagesetup.h>
-
-
-G_BEGIN_DECLS
-
-typedef struct _GtkPrintContext GtkPrintContext;
-
-#define GTK_TYPE_PRINT_CONTEXT    (gtk_print_context_get_type ())
-#define GTK_PRINT_CONTEXT(obj)    (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_CONTEXT, GtkPrintContext))
-#define GTK_IS_PRINT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_CONTEXT))
-
-GDK_AVAILABLE_IN_ALL
-GType          gtk_print_context_get_type (void) G_GNUC_CONST;
-
-
-/* Rendering */
-GDK_AVAILABLE_IN_ALL
-cairo_t      *gtk_print_context_get_cairo_context    (GtkPrintContext *context);
-
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup *gtk_print_context_get_page_setup       (GtkPrintContext *context);
-GDK_AVAILABLE_IN_ALL
-double        gtk_print_context_get_width            (GtkPrintContext *context);
-GDK_AVAILABLE_IN_ALL
-double        gtk_print_context_get_height           (GtkPrintContext *context);
-GDK_AVAILABLE_IN_ALL
-double        gtk_print_context_get_dpi_x            (GtkPrintContext *context);
-GDK_AVAILABLE_IN_ALL
-double        gtk_print_context_get_dpi_y            (GtkPrintContext *context);
-GDK_AVAILABLE_IN_ALL
-gboolean      gtk_print_context_get_hard_margins     (GtkPrintContext *context,
-                                                     double          *top,
-                                                     double          *bottom,
-                                                     double          *left,
-                                                     double          *right);
-
-/* Fonts */
-GDK_AVAILABLE_IN_ALL
-PangoFontMap *gtk_print_context_get_pango_fontmap    (GtkPrintContext *context);
-GDK_AVAILABLE_IN_ALL
-PangoContext *gtk_print_context_create_pango_context (GtkPrintContext *context);
-GDK_AVAILABLE_IN_ALL
-PangoLayout  *gtk_print_context_create_pango_layout  (GtkPrintContext *context);
-
-/* Needed for preview implementations */
-GDK_AVAILABLE_IN_ALL
-void         gtk_print_context_set_cairo_context     (GtkPrintContext *context,
-                                                     cairo_t         *cr,
-                                                     double           dpi_x,
-                                                     double           dpi_y);
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintContext, g_object_unref)
-
-G_END_DECLS
-
index d39ad1645cf97f31a5ec71257262560b0ca396fa..4f4c4ccaaecf98ebb4289f19c5683c9906db5261 100644 (file)
@@ -31,8 +31,8 @@
 
 #include "gtkprintoperation-private.h"
 #include "gtkprintoperation-portal.h"
-#include "gtkprintsettings.h"
-#include "gtkpagesetup.h"
+#include "print/gtkprintsettings.h"
+#include "print/gtkpagesetup.h"
 #include "gtkprintbackendprivate.h"
 #include "gtkfilelauncher.h"
 #include <glib/gi18n-lib.h>
index ee84b28f695ba48720f2ce872b58157d39787324..6aa121921319917f5953081743c2903217f4d181 100644 (file)
@@ -17,7 +17,7 @@
 
 #pragma once
 
-#include "gtkprintoperation.h"
+#include "print/gtkprintoperation.h"
 
 G_BEGIN_DECLS
 
index 46833a63c5ea17e70d9a7c7fcddbc77dface7e95..f5daa452910104cabe249f76746fb4ad7624eaa4 100644 (file)
@@ -18,7 +18,7 @@
 
 #pragma once
 
-#include "gtkprintoperation.h"
+#include "print/gtkprintoperation.h"
 
 G_BEGIN_DECLS
 
diff --git a/gtk/gtkprintoperation.h b/gtk/gtkprintoperation.h
deleted file mode 100644 (file)
index 2b6bb70..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-/* GTK - The GIMP Toolkit
- * gtkprintoperation.h: Print Operation
- * Copyright (C) 2006, Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-
-#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
-#include <cairo.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkwindow.h>
-#include <gtk/gtkpagesetup.h>
-#include <gtk/gtkprintsettings.h>
-#include <gtk/gtkprintcontext.h>
-#include <gtk/gtkprintoperationpreview.h>
-
-
-G_BEGIN_DECLS
-
-#define GTK_TYPE_PRINT_OPERATION                (gtk_print_operation_get_type ())
-#define GTK_PRINT_OPERATION(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_OPERATION, GtkPrintOperation))
-#define GTK_PRINT_OPERATION_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PRINT_OPERATION, GtkPrintOperationClass))
-#define GTK_IS_PRINT_OPERATION(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_OPERATION))
-#define GTK_IS_PRINT_OPERATION_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PRINT_OPERATION))
-#define GTK_PRINT_OPERATION_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_PRINT_OPERATION, GtkPrintOperationClass))
-
-typedef struct _GtkPrintOperationClass   GtkPrintOperationClass;
-typedef struct _GtkPrintOperationPrivate GtkPrintOperationPrivate;
-typedef struct _GtkPrintOperation        GtkPrintOperation;
-
-/**
- * GtkPrintStatus:
- * @GTK_PRINT_STATUS_INITIAL: The printing has not started yet; this
- *   status is set initially, and while the print dialog is shown.
- * @GTK_PRINT_STATUS_PREPARING: This status is set while the begin-print
- *   signal is emitted and during pagination.
- * @GTK_PRINT_STATUS_GENERATING_DATA: This status is set while the
- *   pages are being rendered.
- * @GTK_PRINT_STATUS_SENDING_DATA: The print job is being sent off to the
- *   printer.
- * @GTK_PRINT_STATUS_PENDING: The print job has been sent to the printer,
- *   but is not printed for some reason, e.g. the printer may be stopped.
- * @GTK_PRINT_STATUS_PENDING_ISSUE: Some problem has occurred during
- *   printing, e.g. a paper jam.
- * @GTK_PRINT_STATUS_PRINTING: The printer is processing the print job.
- * @GTK_PRINT_STATUS_FINISHED: The printing has been completed successfully.
- * @GTK_PRINT_STATUS_FINISHED_ABORTED: The printing has been aborted.
- *
- * The status gives a rough indication of the completion of a running
- * print operation.
- */
-typedef enum {
-  GTK_PRINT_STATUS_INITIAL,
-  GTK_PRINT_STATUS_PREPARING,
-  GTK_PRINT_STATUS_GENERATING_DATA,
-  GTK_PRINT_STATUS_SENDING_DATA,
-  GTK_PRINT_STATUS_PENDING,
-  GTK_PRINT_STATUS_PENDING_ISSUE,
-  GTK_PRINT_STATUS_PRINTING,
-  GTK_PRINT_STATUS_FINISHED,
-  GTK_PRINT_STATUS_FINISHED_ABORTED
-} GtkPrintStatus;
-
-/**
- * GtkPrintOperationResult:
- * @GTK_PRINT_OPERATION_RESULT_ERROR: An error has occurred.
- * @GTK_PRINT_OPERATION_RESULT_APPLY: The print settings should be stored.
- * @GTK_PRINT_OPERATION_RESULT_CANCEL: The print operation has been canceled,
- *   the print settings should not be stored.
- * @GTK_PRINT_OPERATION_RESULT_IN_PROGRESS: The print operation is not complete
- *   yet. This value will only be returned when running asynchronously.
- *
- * The result of a print operation.
- *
- * A value of this type is returned by [method@Gtk.PrintOperation.run].
- */
-typedef enum {
-  GTK_PRINT_OPERATION_RESULT_ERROR,
-  GTK_PRINT_OPERATION_RESULT_APPLY,
-  GTK_PRINT_OPERATION_RESULT_CANCEL,
-  GTK_PRINT_OPERATION_RESULT_IN_PROGRESS
-} GtkPrintOperationResult;
-
-/**
- * GtkPrintOperationAction:
- * @GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG: Show the print dialog.
- * @GTK_PRINT_OPERATION_ACTION_PRINT: Start to print without showing
- *   the print dialog, based on the current print settings.
- * @GTK_PRINT_OPERATION_ACTION_PREVIEW: Show the print preview.
- * @GTK_PRINT_OPERATION_ACTION_EXPORT: Export to a file. This requires
- *   the export-filename property to be set.
- *
- * Determines what action the print operation should perform.
- *
- * A parameter of this typs is passed to [method@Gtk.PrintOperation.run].
- */
-typedef enum {
-  GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
-  GTK_PRINT_OPERATION_ACTION_PRINT,
-  GTK_PRINT_OPERATION_ACTION_PREVIEW,
-  GTK_PRINT_OPERATION_ACTION_EXPORT
-} GtkPrintOperationAction;
-
-
-struct _GtkPrintOperation
-{
-  GObject parent_instance;
-
-  /*< private >*/
-  GtkPrintOperationPrivate *priv;
-};
-
-/**
- * GtkPrintOperationClass:
- * @parent_class: The parent class.
- * @done: Signal emitted when the print operation run has finished
- *    doing everything required for printing.
- * @begin_print: Signal emitted after the user has finished changing
- *    print settings in the dialog, before the actual rendering starts.
- * @paginate: Signal emitted after the “begin-print” signal, but
- *    before the actual rendering starts.
- * @request_page_setup: Emitted once for every page that is printed,
- *    to give the application a chance to modify the page setup.
- * @draw_page: Signal emitted for every page that is printed.
- * @end_print: Signal emitted after all pages have been rendered.
- * @status_changed: Emitted at between the various phases of the print
- *    operation.
- * @create_custom_widget: Signal emitted when displaying the print dialog.
- * @custom_widget_apply: Signal emitted right before “begin-print” if
- *    you added a custom widget in the “create-custom-widget” handler.
- * @preview: Signal emitted when a preview is requested from the
- *    native dialog.
- * @update_custom_widget: Emitted after change of selected printer.
- */
-struct _GtkPrintOperationClass
-{
-  GObjectClass parent_class;
-
-  /*< public >*/
-
-  void     (*done)               (GtkPrintOperation *operation,
-                                  GtkPrintOperationResult result);
-  void     (*begin_print)        (GtkPrintOperation *operation,
-                                  GtkPrintContext   *context);
-  gboolean (*paginate)           (GtkPrintOperation *operation,
-                                  GtkPrintContext   *context);
-  void     (*request_page_setup) (GtkPrintOperation *operation,
-                                  GtkPrintContext   *context,
-                                  int                page_nr,
-                                  GtkPageSetup      *setup);
-  void     (*draw_page)          (GtkPrintOperation *operation,
-                                  GtkPrintContext   *context,
-                                  int                page_nr);
-  void     (*end_print)          (GtkPrintOperation *operation,
-                                  GtkPrintContext   *context);
-  void     (*status_changed)     (GtkPrintOperation *operation);
-
-  GtkWidget *(*create_custom_widget) (GtkPrintOperation *operation);
-  void       (*custom_widget_apply)  (GtkPrintOperation *operation,
-                                      GtkWidget         *widget);
-
-  gboolean (*preview)        (GtkPrintOperation        *operation,
-                              GtkPrintOperationPreview *preview,
-                              GtkPrintContext          *context,
-                              GtkWindow                *parent);
-
-  void     (*update_custom_widget) (GtkPrintOperation *operation,
-                                    GtkWidget         *widget,
-                                    GtkPageSetup      *setup,
-                                    GtkPrintSettings  *settings);
-
-  /*< private >*/
-
-  gpointer padding[8];
-};
-
-/**
- * GTK_PRINT_ERROR:
- *
- * The error domain for `GtkPrintError` errors.
- */
-#define GTK_PRINT_ERROR gtk_print_error_quark ()
-
-/**
- * GtkPrintError:
- * @GTK_PRINT_ERROR_GENERAL: An unspecified error occurred.
- * @GTK_PRINT_ERROR_INTERNAL_ERROR: An internal error occurred.
- * @GTK_PRINT_ERROR_NOMEM: A memory allocation failed.
- * @GTK_PRINT_ERROR_INVALID_FILE: An error occurred while loading a page setup
- *   or paper size from a key file.
- *
- * Error codes that identify various errors that can occur while
- * using the GTK printing support.
- */
-typedef enum
-{
-  GTK_PRINT_ERROR_GENERAL,
-  GTK_PRINT_ERROR_INTERNAL_ERROR,
-  GTK_PRINT_ERROR_NOMEM,
-  GTK_PRINT_ERROR_INVALID_FILE
-} GtkPrintError;
-
-GDK_AVAILABLE_IN_ALL
-GQuark gtk_print_error_quark (void);
-
-GDK_AVAILABLE_IN_ALL
-GType                   gtk_print_operation_get_type               (void) G_GNUC_CONST;
-GDK_AVAILABLE_IN_ALL
-GtkPrintOperation *     gtk_print_operation_new                    (void);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_default_page_setup (GtkPrintOperation  *op,
-                                                                    GtkPageSetup       *default_page_setup);
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup *          gtk_print_operation_get_default_page_setup (GtkPrintOperation  *op);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_print_settings     (GtkPrintOperation  *op,
-                                                                    GtkPrintSettings   *print_settings);
-GDK_AVAILABLE_IN_ALL
-GtkPrintSettings *      gtk_print_operation_get_print_settings     (GtkPrintOperation  *op);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_job_name           (GtkPrintOperation  *op,
-                                                                    const char         *job_name);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_n_pages            (GtkPrintOperation  *op,
-                                                                    int                 n_pages);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_current_page       (GtkPrintOperation  *op,
-                                                                    int                 current_page);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_use_full_page      (GtkPrintOperation  *op,
-                                                                    gboolean            full_page);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_unit               (GtkPrintOperation  *op,
-                                                                    GtkUnit             unit);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_export_filename    (GtkPrintOperation  *op,
-                                                                    const char         *filename);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_track_print_status (GtkPrintOperation  *op,
-                                                                    gboolean            track_status);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_show_progress      (GtkPrintOperation  *op,
-                                                                    gboolean            show_progress);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_allow_async        (GtkPrintOperation  *op,
-                                                                    gboolean            allow_async);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_custom_tab_label   (GtkPrintOperation  *op,
-                                                                    const char         *label);
-GDK_AVAILABLE_IN_ALL
-GtkPrintOperationResult gtk_print_operation_run                    (GtkPrintOperation  *op,
-                                                                    GtkPrintOperationAction action,
-                                                                    GtkWindow          *parent,
-                                                                    GError            **error);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_get_error              (GtkPrintOperation  *op,
-                                                                    GError            **error);
-GDK_AVAILABLE_IN_ALL
-GtkPrintStatus          gtk_print_operation_get_status             (GtkPrintOperation  *op);
-GDK_AVAILABLE_IN_ALL
-const char *           gtk_print_operation_get_status_string      (GtkPrintOperation  *op);
-GDK_AVAILABLE_IN_ALL
-gboolean                gtk_print_operation_is_finished            (GtkPrintOperation  *op);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_cancel                 (GtkPrintOperation  *op);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_draw_page_finish       (GtkPrintOperation  *op);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_defer_drawing      (GtkPrintOperation  *op);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_support_selection  (GtkPrintOperation  *op,
-                                                                    gboolean            support_selection);
-GDK_AVAILABLE_IN_ALL
-gboolean                gtk_print_operation_get_support_selection  (GtkPrintOperation  *op);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_has_selection      (GtkPrintOperation  *op,
-                                                                    gboolean            has_selection);
-GDK_AVAILABLE_IN_ALL
-gboolean                gtk_print_operation_get_has_selection      (GtkPrintOperation  *op);
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_operation_set_embed_page_setup   (GtkPrintOperation  *op,
-                                                                    gboolean            embed);
-GDK_AVAILABLE_IN_ALL
-gboolean                gtk_print_operation_get_embed_page_setup   (GtkPrintOperation  *op);
-GDK_AVAILABLE_IN_ALL
-int                     gtk_print_operation_get_n_pages_to_print   (GtkPrintOperation  *op);
-
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup           *gtk_print_run_page_setup_dialog            (GtkWindow          *parent,
-                                                                    GtkPageSetup       *page_setup,
-                                                                    GtkPrintSettings   *settings);
-
-/**
- * GtkPageSetupDoneFunc:
- * @page_setup: the `GtkPageSetup` that has been passed to
- *   gtk_print_run_page_setup_dialog_async()
- * @data: (closure): user data that has been passed to
- *   gtk_print_run_page_setup_dialog_async()
- *
- * The type of function that is passed to
- * gtk_print_run_page_setup_dialog_async().
- *
- * This function will be called when the page setup dialog
- * is dismissed, and also serves as destroy notify for @data.
- */
-typedef void  (* GtkPageSetupDoneFunc) (GtkPageSetup *page_setup,
-                                        gpointer      data);
-
-GDK_AVAILABLE_IN_ALL
-void                    gtk_print_run_page_setup_dialog_async      (GtkWindow            *parent,
-                                                                    GtkPageSetup         *page_setup,
-                                                                    GtkPrintSettings     *settings,
-                                                                    GtkPageSetupDoneFunc  done_cb,
-                                                                    gpointer              data);
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintOperation, g_object_unref)
-
-G_END_DECLS
-
index 423e3523909a1ad0141c7bf1fc2ac53ca2bfb490..af4ae587993dbcfbff113d9b647e80109b812f60 100644 (file)
@@ -18,7 +18,7 @@
 
 #include "config.h"
 
-#include "gtkprintoperationpreview.h"
+#include "print/gtkprintoperationpreview.h"
 #include "gtkmarshalers.h"
 #include "gtkprivate.h"
 
diff --git a/gtk/gtkprintoperationpreview.h b/gtk/gtkprintoperationpreview.h
deleted file mode 100644 (file)
index 32ac15c..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/* GTK - The GIMP Toolkit
- * gtkprintoperationpreview.h: Abstract print preview interface
- * Copyright (C) 2006, Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
-#include <cairo.h>
-#include <gtk/gtkprintcontext.h>
-
-G_BEGIN_DECLS
-
-#define GTK_TYPE_PRINT_OPERATION_PREVIEW                  (gtk_print_operation_preview_get_type ())
-#define GTK_PRINT_OPERATION_PREVIEW(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_OPERATION_PREVIEW, GtkPrintOperationPreview))
-#define GTK_IS_PRINT_OPERATION_PREVIEW(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_OPERATION_PREVIEW))
-#define GTK_PRINT_OPERATION_PREVIEW_GET_IFACE(obj)        (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GTK_TYPE_PRINT_OPERATION_PREVIEW, GtkPrintOperationPreviewIface))
-
-typedef struct _GtkPrintOperationPreview      GtkPrintOperationPreview;      /*dummy typedef */
-typedef struct _GtkPrintOperationPreviewIface GtkPrintOperationPreviewIface;
-
-
-struct _GtkPrintOperationPreviewIface
-{
-  GTypeInterface g_iface;
-
-  /* signals */
-  void              (*ready)          (GtkPrintOperationPreview *preview,
-                                      GtkPrintContext          *context);
-  void              (*got_page_size)  (GtkPrintOperationPreview *preview,
-                                      GtkPrintContext          *context,
-                                      GtkPageSetup             *page_setup);
-
-  /* methods */
-  void              (*render_page)    (GtkPrintOperationPreview *preview,
-                                      int                       page_nr);
-  gboolean          (*is_selected)    (GtkPrintOperationPreview *preview,
-                                      int                       page_nr);
-  void              (*end_preview)    (GtkPrintOperationPreview *preview);
-
-  /* Padding for future expansion */
-  void (*_gtk_reserved1) (void);
-  void (*_gtk_reserved2) (void);
-  void (*_gtk_reserved3) (void);
-  void (*_gtk_reserved4) (void);
-  void (*_gtk_reserved5) (void);
-  void (*_gtk_reserved6) (void);
-  void (*_gtk_reserved7) (void);
-  void (*_gtk_reserved8) (void);
-};
-
-GDK_AVAILABLE_IN_ALL
-GType   gtk_print_operation_preview_get_type       (void) G_GNUC_CONST;
-
-GDK_AVAILABLE_IN_ALL
-void     gtk_print_operation_preview_render_page (GtkPrintOperationPreview *preview,
-                                                 int                       page_nr);
-GDK_AVAILABLE_IN_ALL
-void     gtk_print_operation_preview_end_preview (GtkPrintOperationPreview *preview);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_operation_preview_is_selected (GtkPrintOperationPreview *preview,
-                                                 int                       page_nr);
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintOperationPreview, g_object_unref)
-
-G_END_DECLS
-
index 5daa6e67119d3c04b84af8e0f6c1260d21d74885..04a02e350e9449e0f0159d82ef5cb753ffbefe61 100644 (file)
@@ -23,7 +23,7 @@
 
 #include <glib/gprintf.h>
 
-#include "gtkprintsettings.h"
+#include "print/gtkprintsettings.h"
 #include "gtkprintutilsprivate.h"
 #include "gtktypebuiltins.h"
 #include "gtkwidget.h"
diff --git a/gtk/gtkprintsettings.h b/gtk/gtkprintsettings.h
deleted file mode 100644 (file)
index 507fae6..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-/* GTK - The GIMP Toolkit
- * gtkprintsettings.h: Print Settings
- * Copyright (C) 2006, Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
-#include <gtk/gtkpapersize.h>
-
-G_BEGIN_DECLS
-
-typedef struct _GtkPrintSettings GtkPrintSettings;
-
-#define GTK_TYPE_PRINT_SETTINGS    (gtk_print_settings_get_type ())
-#define GTK_PRINT_SETTINGS(obj)    (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_SETTINGS, GtkPrintSettings))
-#define GTK_IS_PRINT_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_SETTINGS))
-
-typedef void  (*GtkPrintSettingsFunc)  (const char *key,
-                                       const char *value,
-                                       gpointer     user_data);
-
-typedef struct _GtkPageRange GtkPageRange;
-
-/**
- * GtkPageRange:
- * @start: start of page range.
- * @end: end of page range.
- *
- * A range of pages to print.
- *
- * See also [method@Gtk.PrintSettings.set_page_ranges].
- */
-struct _GtkPageRange
-{
-  int start;
-  int end;
-};
-
-GDK_AVAILABLE_IN_ALL
-GType             gtk_print_settings_get_type                (void) G_GNUC_CONST;
-GDK_AVAILABLE_IN_ALL
-GtkPrintSettings *gtk_print_settings_new                     (void);
-
-GDK_AVAILABLE_IN_ALL
-GtkPrintSettings *gtk_print_settings_copy                    (GtkPrintSettings     *other);
-
-GDK_AVAILABLE_IN_ALL
-GtkPrintSettings *gtk_print_settings_new_from_file           (const char           *file_name,
-                                                             GError              **error);
-GDK_AVAILABLE_IN_ALL
-gboolean          gtk_print_settings_load_file               (GtkPrintSettings     *settings,
-                                                             const char           *file_name,
-                                                             GError              **error);
-GDK_AVAILABLE_IN_ALL
-gboolean          gtk_print_settings_to_file                 (GtkPrintSettings     *settings,
-                                                             const char           *file_name,
-                                                             GError              **error);
-GDK_AVAILABLE_IN_ALL
-GtkPrintSettings *gtk_print_settings_new_from_key_file       (GKeyFile             *key_file,
-                                                             const char           *group_name,
-                                                             GError              **error);
-GDK_AVAILABLE_IN_ALL
-gboolean          gtk_print_settings_load_key_file           (GtkPrintSettings     *settings,
-                                                             GKeyFile             *key_file,
-                                                             const char           *group_name,
-                                                             GError              **error);
-GDK_AVAILABLE_IN_ALL
-void              gtk_print_settings_to_key_file             (GtkPrintSettings     *settings,
-                                                             GKeyFile             *key_file,
-                                                             const char           *group_name);
-GDK_AVAILABLE_IN_ALL
-gboolean          gtk_print_settings_has_key                 (GtkPrintSettings     *settings,
-                                                             const char           *key);
-GDK_AVAILABLE_IN_ALL
-const char *     gtk_print_settings_get                     (GtkPrintSettings     *settings,
-                                                             const char           *key);
-GDK_AVAILABLE_IN_ALL
-void              gtk_print_settings_set                     (GtkPrintSettings     *settings,
-                                                             const char           *key,
-                                                             const char           *value);
-GDK_AVAILABLE_IN_ALL
-void              gtk_print_settings_unset                   (GtkPrintSettings     *settings,
-                                                             const char           *key);
-GDK_AVAILABLE_IN_ALL
-void              gtk_print_settings_foreach                 (GtkPrintSettings     *settings,
-                                                             GtkPrintSettingsFunc  func,
-                                                             gpointer              user_data);
-GDK_AVAILABLE_IN_ALL
-gboolean          gtk_print_settings_get_bool                (GtkPrintSettings     *settings,
-                                                             const char           *key);
-GDK_AVAILABLE_IN_ALL
-void              gtk_print_settings_set_bool                (GtkPrintSettings     *settings,
-                                                             const char           *key,
-                                                             gboolean              value);
-GDK_AVAILABLE_IN_ALL
-double            gtk_print_settings_get_double              (GtkPrintSettings     *settings,
-                                                             const char           *key);
-GDK_AVAILABLE_IN_ALL
-double            gtk_print_settings_get_double_with_default (GtkPrintSettings     *settings,
-                                                             const char           *key,
-                                                             double                def);
-GDK_AVAILABLE_IN_ALL
-void              gtk_print_settings_set_double              (GtkPrintSettings     *settings,
-                                                             const char           *key,
-                                                             double                value);
-GDK_AVAILABLE_IN_ALL
-double            gtk_print_settings_get_length              (GtkPrintSettings     *settings,
-                                                             const char           *key,
-                                                             GtkUnit               unit);
-GDK_AVAILABLE_IN_ALL
-void              gtk_print_settings_set_length              (GtkPrintSettings     *settings,
-                                                             const char           *key,
-                                                             double                value,
-                                                             GtkUnit               unit);
-GDK_AVAILABLE_IN_ALL
-int               gtk_print_settings_get_int                 (GtkPrintSettings     *settings,
-                                                             const char           *key);
-GDK_AVAILABLE_IN_ALL
-int               gtk_print_settings_get_int_with_default    (GtkPrintSettings     *settings,
-                                                             const char           *key,
-                                                             int                   def);
-GDK_AVAILABLE_IN_ALL
-void              gtk_print_settings_set_int                 (GtkPrintSettings     *settings,
-                                                             const char           *key,
-                                                             int                   value);
-
-#define GTK_PRINT_SETTINGS_PRINTER          "printer"
-#define GTK_PRINT_SETTINGS_ORIENTATION      "orientation"
-#define GTK_PRINT_SETTINGS_PAPER_FORMAT     "paper-format"
-#define GTK_PRINT_SETTINGS_PAPER_WIDTH      "paper-width"
-#define GTK_PRINT_SETTINGS_PAPER_HEIGHT     "paper-height"
-#define GTK_PRINT_SETTINGS_N_COPIES         "n-copies"
-#define GTK_PRINT_SETTINGS_DEFAULT_SOURCE   "default-source"
-#define GTK_PRINT_SETTINGS_QUALITY          "quality"
-#define GTK_PRINT_SETTINGS_RESOLUTION       "resolution"
-#define GTK_PRINT_SETTINGS_USE_COLOR        "use-color"
-#define GTK_PRINT_SETTINGS_DUPLEX           "duplex"
-#define GTK_PRINT_SETTINGS_COLLATE          "collate"
-#define GTK_PRINT_SETTINGS_REVERSE          "reverse"
-#define GTK_PRINT_SETTINGS_MEDIA_TYPE       "media-type"
-#define GTK_PRINT_SETTINGS_DITHER           "dither"
-#define GTK_PRINT_SETTINGS_SCALE            "scale"
-#define GTK_PRINT_SETTINGS_PRINT_PAGES      "print-pages"
-#define GTK_PRINT_SETTINGS_PAGE_RANGES      "page-ranges"
-#define GTK_PRINT_SETTINGS_PAGE_SET         "page-set"
-#define GTK_PRINT_SETTINGS_FINISHINGS       "finishings"
-#define GTK_PRINT_SETTINGS_NUMBER_UP        "number-up"
-#define GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT "number-up-layout"
-#define GTK_PRINT_SETTINGS_OUTPUT_BIN       "output-bin"
-#define GTK_PRINT_SETTINGS_RESOLUTION_X     "resolution-x"
-#define GTK_PRINT_SETTINGS_RESOLUTION_Y     "resolution-y"
-#define GTK_PRINT_SETTINGS_PRINTER_LPI      "printer-lpi"
-
-/**
- * GTK_PRINT_SETTINGS_OUTPUT_DIR:
- *
- * The key used by the “Print to file” printer to store the
- * directory to which the output should be written.
- */
-#define GTK_PRINT_SETTINGS_OUTPUT_DIR       "output-dir"
-
-/**
- * GTK_PRINT_SETTINGS_OUTPUT_BASENAME:
- *
- * The key used by the “Print to file” printer to store the file
- * name of the output without the path to the directory and the
- * file extension.
- */
-#define GTK_PRINT_SETTINGS_OUTPUT_BASENAME  "output-basename"
-
-/**
- * GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT:
- *
- * The key used by the “Print to file” printer to store the format
- * of the output. The supported values are “PS” and “PDF”.
- */
-#define GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT  "output-file-format"
-
-/**
- * GTK_PRINT_SETTINGS_OUTPUT_URI:
- *
- * The key used by the “Print to file” printer to store the URI
- * to which the output should be written. GTK itself supports
- * only “file://” URIs.
- */
-#define GTK_PRINT_SETTINGS_OUTPUT_URI          "output-uri"
-
-#define GTK_PRINT_SETTINGS_WIN32_DRIVER_VERSION "win32-driver-version"
-#define GTK_PRINT_SETTINGS_WIN32_DRIVER_EXTRA   "win32-driver-extra"
-
-/* Helpers: */
-
-GDK_AVAILABLE_IN_ALL
-const char *         gtk_print_settings_get_printer           (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_printer           (GtkPrintSettings   *settings,
-                                                               const char         *printer);
-GDK_AVAILABLE_IN_ALL
-GtkPageOrientation    gtk_print_settings_get_orientation       (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_orientation       (GtkPrintSettings   *settings,
-                                                               GtkPageOrientation  orientation);
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *        gtk_print_settings_get_paper_size        (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_paper_size        (GtkPrintSettings   *settings,
-                                                               GtkPaperSize       *paper_size);
-GDK_AVAILABLE_IN_ALL
-double                gtk_print_settings_get_paper_width       (GtkPrintSettings   *settings,
-                                                               GtkUnit             unit);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_paper_width       (GtkPrintSettings   *settings,
-                                                               double              width,
-                                                               GtkUnit             unit);
-GDK_AVAILABLE_IN_ALL
-double                gtk_print_settings_get_paper_height      (GtkPrintSettings   *settings,
-                                                               GtkUnit             unit);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_paper_height      (GtkPrintSettings   *settings,
-                                                               double              height,
-                                                               GtkUnit             unit);
-GDK_AVAILABLE_IN_ALL
-gboolean              gtk_print_settings_get_use_color         (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_use_color         (GtkPrintSettings   *settings,
-                                                               gboolean            use_color);
-GDK_AVAILABLE_IN_ALL
-gboolean              gtk_print_settings_get_collate           (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_collate           (GtkPrintSettings   *settings,
-                                                               gboolean            collate);
-GDK_AVAILABLE_IN_ALL
-gboolean              gtk_print_settings_get_reverse           (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_reverse           (GtkPrintSettings   *settings,
-                                                               gboolean            reverse);
-GDK_AVAILABLE_IN_ALL
-GtkPrintDuplex        gtk_print_settings_get_duplex            (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_duplex            (GtkPrintSettings   *settings,
-                                                               GtkPrintDuplex      duplex);
-GDK_AVAILABLE_IN_ALL
-GtkPrintQuality       gtk_print_settings_get_quality           (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_quality           (GtkPrintSettings   *settings,
-                                                               GtkPrintQuality     quality);
-GDK_AVAILABLE_IN_ALL
-int                   gtk_print_settings_get_n_copies          (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_n_copies          (GtkPrintSettings   *settings,
-                                                               int                 num_copies);
-GDK_AVAILABLE_IN_ALL
-int                   gtk_print_settings_get_number_up         (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_number_up         (GtkPrintSettings   *settings,
-                                                               int                 number_up);
-GDK_AVAILABLE_IN_ALL
-GtkNumberUpLayout     gtk_print_settings_get_number_up_layout  (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_number_up_layout  (GtkPrintSettings   *settings,
-                                                               GtkNumberUpLayout   number_up_layout);
-GDK_AVAILABLE_IN_ALL
-int                   gtk_print_settings_get_resolution        (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_resolution        (GtkPrintSettings   *settings,
-                                                               int                 resolution);
-GDK_AVAILABLE_IN_ALL
-int                   gtk_print_settings_get_resolution_x      (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-int                   gtk_print_settings_get_resolution_y      (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_resolution_xy     (GtkPrintSettings   *settings,
-                                                               int                 resolution_x,
-                                                               int                 resolution_y);
-GDK_AVAILABLE_IN_ALL
-double                gtk_print_settings_get_printer_lpi       (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_printer_lpi       (GtkPrintSettings   *settings,
-                                                               double              lpi);
-GDK_AVAILABLE_IN_ALL
-double                gtk_print_settings_get_scale             (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_scale             (GtkPrintSettings   *settings,
-                                                               double              scale);
-GDK_AVAILABLE_IN_ALL
-GtkPrintPages         gtk_print_settings_get_print_pages       (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_print_pages       (GtkPrintSettings   *settings,
-                                                               GtkPrintPages       pages);
-GDK_AVAILABLE_IN_ALL
-GtkPageRange *        gtk_print_settings_get_page_ranges       (GtkPrintSettings   *settings,
-                                                               int                *num_ranges);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_page_ranges       (GtkPrintSettings   *settings,
-                                                               GtkPageRange       *page_ranges,
-                                                               int                 num_ranges);
-GDK_AVAILABLE_IN_ALL
-GtkPageSet            gtk_print_settings_get_page_set          (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_page_set          (GtkPrintSettings   *settings,
-                                                               GtkPageSet          page_set);
-GDK_AVAILABLE_IN_ALL
-const char *         gtk_print_settings_get_default_source    (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_default_source    (GtkPrintSettings   *settings,
-                                                               const char         *default_source);
-GDK_AVAILABLE_IN_ALL
-const char *         gtk_print_settings_get_media_type        (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_media_type        (GtkPrintSettings   *settings,
-                                                               const char         *media_type);
-GDK_AVAILABLE_IN_ALL
-const char *         gtk_print_settings_get_dither            (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_dither            (GtkPrintSettings   *settings,
-                                                               const char         *dither);
-GDK_AVAILABLE_IN_ALL
-const char *         gtk_print_settings_get_finishings        (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_finishings        (GtkPrintSettings   *settings,
-                                                               const char         *finishings);
-GDK_AVAILABLE_IN_ALL
-const char *         gtk_print_settings_get_output_bin        (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-void                  gtk_print_settings_set_output_bin        (GtkPrintSettings   *settings,
-                                                               const char         *output_bin);
-
-GDK_AVAILABLE_IN_ALL
-GVariant             *gtk_print_settings_to_gvariant           (GtkPrintSettings   *settings);
-GDK_AVAILABLE_IN_ALL
-GtkPrintSettings     *gtk_print_settings_new_from_gvariant     (GVariant           *variant);
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintSettings, g_object_unref)
-
-G_END_DECLS
-
index 65b13ffd48f56e102966ed7ea826b1a8fe843e6a..824d3c01290ee9900bda278be73409fa6a8c6958 100644 (file)
@@ -545,19 +545,13 @@ gtk_public_headers = files([
   'gtkoverlay.h',
   'gtkoverlaylayout.h',
   'gtkpadcontroller.h',
-  'gtkpagesetup.h',
   'gtkpaned.h',
-  'gtkpapersize.h',
   'gtkpasswordentry.h',
   'gtkpasswordentrybuffer.h',
   'gtkpicture.h',
   'gtkpopover.h',
   'gtkpopovermenu.h',
   'gtkpopovermenubar.h',
-  'gtkprintcontext.h',
-  'gtkprintoperation.h',
-  'gtkprintoperationpreview.h',
-  'gtkprintsettings.h',
   'gtkprogressbar.h',
   'gtkrange.h',
   'gtkrecentmanager.h',
@@ -632,8 +626,11 @@ gtk_public_headers = files([
   'gtk.h',
 ])
 
+subdir('print')
+
 install_headers(gtk_public_headers, subdir: 'gtk-4.0/gtk/')
 install_headers(gtk_deprecated_headers, subdir: 'gtk-4.0/gtk/deprecated')
+install_headers(gtk_print_headers, subdir: 'gtk-4.0/gtk/print')
 
 gtk_sources = gtk_public_sources + gtk_private_sources
 
@@ -958,7 +955,7 @@ gtkmarshalers = gnome.genmarshal('gtkmarshalers',
 gtkmarshal_h = gtkmarshalers[1]
 
 gtktypebuiltins = gnome.mkenums('gtktypebuiltins',
-  sources: gtk_public_headers + gtk_deprecated_headers,
+  sources: gtk_public_headers + gtk_deprecated_headers + gtk_print_headers,
   c_template: 'gtktypebuiltins.c.template',
   h_template: 'gtktypebuiltins.h.template',
   install_dir: gtk_includedir / 'gtk-4.0/gtk',
diff --git a/gtk/print/gtkpagesetup.h b/gtk/print/gtkpagesetup.h
new file mode 100644 (file)
index 0000000..975e3d7
--- /dev/null
@@ -0,0 +1,137 @@
+/* GTK - The GIMP Toolkit
+ * gtkpagesetup.h: Page Setup
+ * Copyright (C) 2006, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <gtk/print/gtkpapersize.h>
+
+
+G_BEGIN_DECLS
+
+typedef struct _GtkPageSetup GtkPageSetup;
+
+#define GTK_TYPE_PAGE_SETUP    (gtk_page_setup_get_type ())
+#define GTK_PAGE_SETUP(obj)    (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PAGE_SETUP, GtkPageSetup))
+#define GTK_IS_PAGE_SETUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PAGE_SETUP))
+
+GDK_AVAILABLE_IN_ALL
+GType              gtk_page_setup_get_type          (void) G_GNUC_CONST;
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup *     gtk_page_setup_new               (void);
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup *     gtk_page_setup_copy              (GtkPageSetup       *other);
+GDK_AVAILABLE_IN_ALL
+GtkPageOrientation gtk_page_setup_get_orientation   (GtkPageSetup       *setup);
+GDK_AVAILABLE_IN_ALL
+void               gtk_page_setup_set_orientation   (GtkPageSetup       *setup,
+                                                    GtkPageOrientation  orientation);
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *     gtk_page_setup_get_paper_size    (GtkPageSetup       *setup);
+GDK_AVAILABLE_IN_ALL
+void               gtk_page_setup_set_paper_size    (GtkPageSetup       *setup,
+                                                    GtkPaperSize       *size);
+GDK_AVAILABLE_IN_ALL
+double             gtk_page_setup_get_top_margin    (GtkPageSetup       *setup,
+                                                    GtkUnit             unit);
+GDK_AVAILABLE_IN_ALL
+void               gtk_page_setup_set_top_margin    (GtkPageSetup       *setup,
+                                                    double              margin,
+                                                    GtkUnit             unit);
+GDK_AVAILABLE_IN_ALL
+double             gtk_page_setup_get_bottom_margin (GtkPageSetup       *setup,
+                                                    GtkUnit             unit);
+GDK_AVAILABLE_IN_ALL
+void               gtk_page_setup_set_bottom_margin (GtkPageSetup       *setup,
+                                                    double              margin,
+                                                    GtkUnit             unit);
+GDK_AVAILABLE_IN_ALL
+double             gtk_page_setup_get_left_margin   (GtkPageSetup       *setup,
+                                                    GtkUnit             unit);
+GDK_AVAILABLE_IN_ALL
+void               gtk_page_setup_set_left_margin   (GtkPageSetup       *setup,
+                                                    double              margin,
+                                                    GtkUnit             unit);
+GDK_AVAILABLE_IN_ALL
+double             gtk_page_setup_get_right_margin  (GtkPageSetup       *setup,
+                                                    GtkUnit             unit);
+GDK_AVAILABLE_IN_ALL
+void               gtk_page_setup_set_right_margin  (GtkPageSetup       *setup,
+                                                    double              margin,
+                                                    GtkUnit             unit);
+
+GDK_AVAILABLE_IN_ALL
+void gtk_page_setup_set_paper_size_and_default_margins (GtkPageSetup    *setup,
+                                                       GtkPaperSize    *size);
+
+/* These take orientation, but not margins into consideration */
+GDK_AVAILABLE_IN_ALL
+double             gtk_page_setup_get_paper_width   (GtkPageSetup       *setup,
+                                                    GtkUnit             unit);
+GDK_AVAILABLE_IN_ALL
+double             gtk_page_setup_get_paper_height  (GtkPageSetup       *setup,
+                                                    GtkUnit             unit);
+
+
+/* These take orientation, and margins into consideration */
+GDK_AVAILABLE_IN_ALL
+double             gtk_page_setup_get_page_width    (GtkPageSetup       *setup,
+                                                    GtkUnit             unit);
+GDK_AVAILABLE_IN_ALL
+double             gtk_page_setup_get_page_height   (GtkPageSetup       *setup,
+                                                    GtkUnit             unit);
+
+/* Saving and restoring page setup */
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup     *gtk_page_setup_new_from_file     (const char          *file_name,
+                                                    GError              **error);
+GDK_AVAILABLE_IN_ALL
+gboolean          gtk_page_setup_load_file         (GtkPageSetup        *setup,
+                                                    const char          *file_name,
+                                                    GError             **error);
+GDK_AVAILABLE_IN_ALL
+gboolean          gtk_page_setup_to_file           (GtkPageSetup        *setup,
+                                                    const char          *file_name,
+                                                    GError             **error);
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup     *gtk_page_setup_new_from_key_file (GKeyFile            *key_file,
+                                                    const char          *group_name,
+                                                    GError             **error);
+GDK_AVAILABLE_IN_ALL
+gboolean           gtk_page_setup_load_key_file     (GtkPageSetup        *setup,
+                                                    GKeyFile            *key_file,
+                                                    const char          *group_name,
+                                                    GError             **error);
+GDK_AVAILABLE_IN_ALL
+void              gtk_page_setup_to_key_file       (GtkPageSetup        *setup,
+                                                    GKeyFile            *key_file,
+                                                    const char          *group_name);
+
+GDK_AVAILABLE_IN_ALL
+GVariant          *gtk_page_setup_to_gvariant       (GtkPageSetup        *setup);
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup      *gtk_page_setup_new_from_gvariant (GVariant            *variant);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPageSetup, g_object_unref)
+
+G_END_DECLS
+
diff --git a/gtk/print/gtkpapersize.h b/gtk/print/gtkpapersize.h
new file mode 100644 (file)
index 0000000..6aaf2d7
--- /dev/null
@@ -0,0 +1,174 @@
+/* GTK - The GIMP Toolkit
+ * gtkpapersize.h: Paper Size
+ * Copyright (C) 2006, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <gdk/gdk.h>
+#include <gtk/gtkenums.h>
+
+
+G_BEGIN_DECLS
+
+typedef struct _GtkPaperSize GtkPaperSize;
+
+#define GTK_TYPE_PAPER_SIZE    (gtk_paper_size_get_type ())
+
+/* Common names, from PWG 5101.1-2002 PWG: Standard for Media Standardized Names */
+/**
+ * GTK_PAPER_NAME_A3:
+ *
+ * Name for the A3 paper size.
+ */
+#define GTK_PAPER_NAME_A3 "iso_a3"
+
+/**
+ * GTK_PAPER_NAME_A4:
+ *
+ * Name for the A4 paper size.
+ */
+#define GTK_PAPER_NAME_A4 "iso_a4"
+
+/**
+ * GTK_PAPER_NAME_A5:
+ *
+ * Name for the A5 paper size.
+ */
+#define GTK_PAPER_NAME_A5 "iso_a5"
+
+/**
+ * GTK_PAPER_NAME_B5:
+ *
+ * Name for the B5 paper size.
+ */
+#define GTK_PAPER_NAME_B5 "iso_b5"
+
+/**
+ * GTK_PAPER_NAME_LETTER:
+ *
+ * Name for the Letter paper size.
+ */
+#define GTK_PAPER_NAME_LETTER "na_letter"
+
+/**
+ * GTK_PAPER_NAME_EXECUTIVE:
+ *
+ * Name for the Executive paper size.
+ */
+#define GTK_PAPER_NAME_EXECUTIVE "na_executive"
+
+/**
+ * GTK_PAPER_NAME_LEGAL:
+ *
+ * Name for the Legal paper size.
+ */
+#define GTK_PAPER_NAME_LEGAL "na_legal"
+
+GDK_AVAILABLE_IN_ALL
+GType gtk_paper_size_get_type (void) G_GNUC_CONST;
+
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *gtk_paper_size_new          (const char   *name);
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *gtk_paper_size_new_from_ppd (const char   *ppd_name,
+                                          const char   *ppd_display_name,
+                                          double        width,
+                                          double        height);
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *gtk_paper_size_new_from_ipp (const char   *ipp_name,
+                                          double        width,
+                                          double        height);
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *gtk_paper_size_new_custom   (const char   *name,
+                                          const char   *display_name,
+                                          double        width,
+                                          double        height,
+                                          GtkUnit       unit);
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *gtk_paper_size_copy         (GtkPaperSize *other);
+GDK_AVAILABLE_IN_ALL
+void          gtk_paper_size_free         (GtkPaperSize *size);
+GDK_AVAILABLE_IN_ALL
+gboolean      gtk_paper_size_is_equal     (GtkPaperSize *size1,
+                                          GtkPaperSize *size2);
+
+GDK_AVAILABLE_IN_ALL
+GList        *gtk_paper_size_get_paper_sizes (gboolean include_custom);
+
+/* The width is always the shortest side, measure in mm */
+GDK_AVAILABLE_IN_ALL
+const char *gtk_paper_size_get_name         (GtkPaperSize *size);
+GDK_AVAILABLE_IN_ALL
+const char *gtk_paper_size_get_display_name (GtkPaperSize *size);
+GDK_AVAILABLE_IN_ALL
+const char *gtk_paper_size_get_ppd_name     (GtkPaperSize *size);
+
+GDK_AVAILABLE_IN_ALL
+double   gtk_paper_size_get_width        (GtkPaperSize *size, GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+double   gtk_paper_size_get_height       (GtkPaperSize *size, GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_paper_size_is_custom        (GtkPaperSize *size);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_paper_size_is_ipp           (GtkPaperSize *size);
+
+/* Only for custom sizes: */
+GDK_AVAILABLE_IN_ALL
+void    gtk_paper_size_set_size                  (GtkPaperSize *size, 
+                                                  double        width, 
+                                                  double        height, 
+                                                  GtkUnit       unit);
+
+GDK_AVAILABLE_IN_ALL
+double gtk_paper_size_get_default_top_margin     (GtkPaperSize *size,
+                                                 GtkUnit       unit);
+GDK_AVAILABLE_IN_ALL
+double gtk_paper_size_get_default_bottom_margin  (GtkPaperSize *size,
+                                                 GtkUnit       unit);
+GDK_AVAILABLE_IN_ALL
+double gtk_paper_size_get_default_left_margin    (GtkPaperSize *size,
+                                                 GtkUnit       unit);
+GDK_AVAILABLE_IN_ALL
+double gtk_paper_size_get_default_right_margin   (GtkPaperSize *size,
+                                                 GtkUnit       unit);
+
+GDK_AVAILABLE_IN_ALL
+const char *gtk_paper_size_get_default (void);
+
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *gtk_paper_size_new_from_key_file (GKeyFile    *key_file,
+                                               const char *group_name,
+                                               GError     **error);
+GDK_AVAILABLE_IN_ALL
+void     gtk_paper_size_to_key_file            (GtkPaperSize *size,
+                                               GKeyFile     *key_file,
+                                               const char   *group_name);
+
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *gtk_paper_size_new_from_gvariant (GVariant     *variant);
+GDK_AVAILABLE_IN_ALL
+GVariant     *gtk_paper_size_to_gvariant       (GtkPaperSize *paper_size);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPaperSize, gtk_paper_size_free)
+
+G_END_DECLS
+
diff --git a/gtk/print/gtkprintcontext.h b/gtk/print/gtkprintcontext.h
new file mode 100644 (file)
index 0000000..d492959
--- /dev/null
@@ -0,0 +1,81 @@
+/* GTK - The GIMP Toolkit
+ * gtkprintcontext.h: Print Context
+ * Copyright (C) 2006, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <pango/pango.h>
+#include <gtk/print/gtkpagesetup.h>
+
+
+G_BEGIN_DECLS
+
+typedef struct _GtkPrintContext GtkPrintContext;
+
+#define GTK_TYPE_PRINT_CONTEXT    (gtk_print_context_get_type ())
+#define GTK_PRINT_CONTEXT(obj)    (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_CONTEXT, GtkPrintContext))
+#define GTK_IS_PRINT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_CONTEXT))
+
+GDK_AVAILABLE_IN_ALL
+GType          gtk_print_context_get_type (void) G_GNUC_CONST;
+
+
+/* Rendering */
+GDK_AVAILABLE_IN_ALL
+cairo_t      *gtk_print_context_get_cairo_context    (GtkPrintContext *context);
+
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup *gtk_print_context_get_page_setup       (GtkPrintContext *context);
+GDK_AVAILABLE_IN_ALL
+double        gtk_print_context_get_width            (GtkPrintContext *context);
+GDK_AVAILABLE_IN_ALL
+double        gtk_print_context_get_height           (GtkPrintContext *context);
+GDK_AVAILABLE_IN_ALL
+double        gtk_print_context_get_dpi_x            (GtkPrintContext *context);
+GDK_AVAILABLE_IN_ALL
+double        gtk_print_context_get_dpi_y            (GtkPrintContext *context);
+GDK_AVAILABLE_IN_ALL
+gboolean      gtk_print_context_get_hard_margins     (GtkPrintContext *context,
+                                                     double          *top,
+                                                     double          *bottom,
+                                                     double          *left,
+                                                     double          *right);
+
+/* Fonts */
+GDK_AVAILABLE_IN_ALL
+PangoFontMap *gtk_print_context_get_pango_fontmap    (GtkPrintContext *context);
+GDK_AVAILABLE_IN_ALL
+PangoContext *gtk_print_context_create_pango_context (GtkPrintContext *context);
+GDK_AVAILABLE_IN_ALL
+PangoLayout  *gtk_print_context_create_pango_layout  (GtkPrintContext *context);
+
+/* Needed for preview implementations */
+GDK_AVAILABLE_IN_ALL
+void         gtk_print_context_set_cairo_context     (GtkPrintContext *context,
+                                                     cairo_t         *cr,
+                                                     double           dpi_x,
+                                                     double           dpi_y);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintContext, g_object_unref)
+
+G_END_DECLS
+
diff --git a/gtk/print/gtkprintoperation.h b/gtk/print/gtkprintoperation.h
new file mode 100644 (file)
index 0000000..ccee5d8
--- /dev/null
@@ -0,0 +1,336 @@
+/* GTK - The GIMP Toolkit
+ * gtkprintoperation.h: Print Operation
+ * Copyright (C) 2006, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <cairo.h>
+#include <gtk/gtkmain.h>
+#include <gtk/gtkwindow.h>
+#include <gtk/print/gtkpagesetup.h>
+#include <gtk/print/gtkprintsettings.h>
+#include <gtk/print/gtkprintcontext.h>
+#include <gtk/print/gtkprintoperationpreview.h>
+
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_PRINT_OPERATION                (gtk_print_operation_get_type ())
+#define GTK_PRINT_OPERATION(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_OPERATION, GtkPrintOperation))
+#define GTK_PRINT_OPERATION_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PRINT_OPERATION, GtkPrintOperationClass))
+#define GTK_IS_PRINT_OPERATION(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_OPERATION))
+#define GTK_IS_PRINT_OPERATION_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PRINT_OPERATION))
+#define GTK_PRINT_OPERATION_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_PRINT_OPERATION, GtkPrintOperationClass))
+
+typedef struct _GtkPrintOperationClass   GtkPrintOperationClass;
+typedef struct _GtkPrintOperationPrivate GtkPrintOperationPrivate;
+typedef struct _GtkPrintOperation        GtkPrintOperation;
+
+/**
+ * GtkPrintStatus:
+ * @GTK_PRINT_STATUS_INITIAL: The printing has not started yet; this
+ *   status is set initially, and while the print dialog is shown.
+ * @GTK_PRINT_STATUS_PREPARING: This status is set while the begin-print
+ *   signal is emitted and during pagination.
+ * @GTK_PRINT_STATUS_GENERATING_DATA: This status is set while the
+ *   pages are being rendered.
+ * @GTK_PRINT_STATUS_SENDING_DATA: The print job is being sent off to the
+ *   printer.
+ * @GTK_PRINT_STATUS_PENDING: The print job has been sent to the printer,
+ *   but is not printed for some reason, e.g. the printer may be stopped.
+ * @GTK_PRINT_STATUS_PENDING_ISSUE: Some problem has occurred during
+ *   printing, e.g. a paper jam.
+ * @GTK_PRINT_STATUS_PRINTING: The printer is processing the print job.
+ * @GTK_PRINT_STATUS_FINISHED: The printing has been completed successfully.
+ * @GTK_PRINT_STATUS_FINISHED_ABORTED: The printing has been aborted.
+ *
+ * The status gives a rough indication of the completion of a running
+ * print operation.
+ */
+typedef enum {
+  GTK_PRINT_STATUS_INITIAL,
+  GTK_PRINT_STATUS_PREPARING,
+  GTK_PRINT_STATUS_GENERATING_DATA,
+  GTK_PRINT_STATUS_SENDING_DATA,
+  GTK_PRINT_STATUS_PENDING,
+  GTK_PRINT_STATUS_PENDING_ISSUE,
+  GTK_PRINT_STATUS_PRINTING,
+  GTK_PRINT_STATUS_FINISHED,
+  GTK_PRINT_STATUS_FINISHED_ABORTED
+} GtkPrintStatus;
+
+/**
+ * GtkPrintOperationResult:
+ * @GTK_PRINT_OPERATION_RESULT_ERROR: An error has occurred.
+ * @GTK_PRINT_OPERATION_RESULT_APPLY: The print settings should be stored.
+ * @GTK_PRINT_OPERATION_RESULT_CANCEL: The print operation has been canceled,
+ *   the print settings should not be stored.
+ * @GTK_PRINT_OPERATION_RESULT_IN_PROGRESS: The print operation is not complete
+ *   yet. This value will only be returned when running asynchronously.
+ *
+ * The result of a print operation.
+ *
+ * A value of this type is returned by [method@Gtk.PrintOperation.run].
+ */
+typedef enum {
+  GTK_PRINT_OPERATION_RESULT_ERROR,
+  GTK_PRINT_OPERATION_RESULT_APPLY,
+  GTK_PRINT_OPERATION_RESULT_CANCEL,
+  GTK_PRINT_OPERATION_RESULT_IN_PROGRESS
+} GtkPrintOperationResult;
+
+/**
+ * GtkPrintOperationAction:
+ * @GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG: Show the print dialog.
+ * @GTK_PRINT_OPERATION_ACTION_PRINT: Start to print without showing
+ *   the print dialog, based on the current print settings.
+ * @GTK_PRINT_OPERATION_ACTION_PREVIEW: Show the print preview.
+ * @GTK_PRINT_OPERATION_ACTION_EXPORT: Export to a file. This requires
+ *   the export-filename property to be set.
+ *
+ * Determines what action the print operation should perform.
+ *
+ * A parameter of this typs is passed to [method@Gtk.PrintOperation.run].
+ */
+typedef enum {
+  GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
+  GTK_PRINT_OPERATION_ACTION_PRINT,
+  GTK_PRINT_OPERATION_ACTION_PREVIEW,
+  GTK_PRINT_OPERATION_ACTION_EXPORT
+} GtkPrintOperationAction;
+
+
+struct _GtkPrintOperation
+{
+  GObject parent_instance;
+
+  /*< private >*/
+  GtkPrintOperationPrivate *priv;
+};
+
+/**
+ * GtkPrintOperationClass:
+ * @parent_class: The parent class.
+ * @done: Signal emitted when the print operation run has finished
+ *    doing everything required for printing.
+ * @begin_print: Signal emitted after the user has finished changing
+ *    print settings in the dialog, before the actual rendering starts.
+ * @paginate: Signal emitted after the “begin-print” signal, but
+ *    before the actual rendering starts.
+ * @request_page_setup: Emitted once for every page that is printed,
+ *    to give the application a chance to modify the page setup.
+ * @draw_page: Signal emitted for every page that is printed.
+ * @end_print: Signal emitted after all pages have been rendered.
+ * @status_changed: Emitted at between the various phases of the print
+ *    operation.
+ * @create_custom_widget: Signal emitted when displaying the print dialog.
+ * @custom_widget_apply: Signal emitted right before “begin-print” if
+ *    you added a custom widget in the “create-custom-widget” handler.
+ * @preview: Signal emitted when a preview is requested from the
+ *    native dialog.
+ * @update_custom_widget: Emitted after change of selected printer.
+ */
+struct _GtkPrintOperationClass
+{
+  GObjectClass parent_class;
+
+  /*< public >*/
+
+  void     (*done)               (GtkPrintOperation *operation,
+                                  GtkPrintOperationResult result);
+  void     (*begin_print)        (GtkPrintOperation *operation,
+                                  GtkPrintContext   *context);
+  gboolean (*paginate)           (GtkPrintOperation *operation,
+                                  GtkPrintContext   *context);
+  void     (*request_page_setup) (GtkPrintOperation *operation,
+                                  GtkPrintContext   *context,
+                                  int                page_nr,
+                                  GtkPageSetup      *setup);
+  void     (*draw_page)          (GtkPrintOperation *operation,
+                                  GtkPrintContext   *context,
+                                  int                page_nr);
+  void     (*end_print)          (GtkPrintOperation *operation,
+                                  GtkPrintContext   *context);
+  void     (*status_changed)     (GtkPrintOperation *operation);
+
+  GtkWidget *(*create_custom_widget) (GtkPrintOperation *operation);
+  void       (*custom_widget_apply)  (GtkPrintOperation *operation,
+                                      GtkWidget         *widget);
+
+  gboolean (*preview)        (GtkPrintOperation        *operation,
+                              GtkPrintOperationPreview *preview,
+                              GtkPrintContext          *context,
+                              GtkWindow                *parent);
+
+  void     (*update_custom_widget) (GtkPrintOperation *operation,
+                                    GtkWidget         *widget,
+                                    GtkPageSetup      *setup,
+                                    GtkPrintSettings  *settings);
+
+  /*< private >*/
+
+  gpointer padding[8];
+};
+
+/**
+ * GTK_PRINT_ERROR:
+ *
+ * The error domain for `GtkPrintError` errors.
+ */
+#define GTK_PRINT_ERROR gtk_print_error_quark ()
+
+/**
+ * GtkPrintError:
+ * @GTK_PRINT_ERROR_GENERAL: An unspecified error occurred.
+ * @GTK_PRINT_ERROR_INTERNAL_ERROR: An internal error occurred.
+ * @GTK_PRINT_ERROR_NOMEM: A memory allocation failed.
+ * @GTK_PRINT_ERROR_INVALID_FILE: An error occurred while loading a page setup
+ *   or paper size from a key file.
+ *
+ * Error codes that identify various errors that can occur while
+ * using the GTK printing support.
+ */
+typedef enum
+{
+  GTK_PRINT_ERROR_GENERAL,
+  GTK_PRINT_ERROR_INTERNAL_ERROR,
+  GTK_PRINT_ERROR_NOMEM,
+  GTK_PRINT_ERROR_INVALID_FILE
+} GtkPrintError;
+
+GDK_AVAILABLE_IN_ALL
+GQuark gtk_print_error_quark (void);
+
+GDK_AVAILABLE_IN_ALL
+GType                   gtk_print_operation_get_type               (void) G_GNUC_CONST;
+GDK_AVAILABLE_IN_ALL
+GtkPrintOperation *     gtk_print_operation_new                    (void);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_default_page_setup (GtkPrintOperation  *op,
+                                                                    GtkPageSetup       *default_page_setup);
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup *          gtk_print_operation_get_default_page_setup (GtkPrintOperation  *op);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_print_settings     (GtkPrintOperation  *op,
+                                                                    GtkPrintSettings   *print_settings);
+GDK_AVAILABLE_IN_ALL
+GtkPrintSettings *      gtk_print_operation_get_print_settings     (GtkPrintOperation  *op);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_job_name           (GtkPrintOperation  *op,
+                                                                    const char         *job_name);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_n_pages            (GtkPrintOperation  *op,
+                                                                    int                 n_pages);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_current_page       (GtkPrintOperation  *op,
+                                                                    int                 current_page);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_use_full_page      (GtkPrintOperation  *op,
+                                                                    gboolean            full_page);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_unit               (GtkPrintOperation  *op,
+                                                                    GtkUnit             unit);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_export_filename    (GtkPrintOperation  *op,
+                                                                    const char         *filename);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_track_print_status (GtkPrintOperation  *op,
+                                                                    gboolean            track_status);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_show_progress      (GtkPrintOperation  *op,
+                                                                    gboolean            show_progress);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_allow_async        (GtkPrintOperation  *op,
+                                                                    gboolean            allow_async);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_custom_tab_label   (GtkPrintOperation  *op,
+                                                                    const char         *label);
+GDK_AVAILABLE_IN_ALL
+GtkPrintOperationResult gtk_print_operation_run                    (GtkPrintOperation  *op,
+                                                                    GtkPrintOperationAction action,
+                                                                    GtkWindow          *parent,
+                                                                    GError            **error);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_get_error              (GtkPrintOperation  *op,
+                                                                    GError            **error);
+GDK_AVAILABLE_IN_ALL
+GtkPrintStatus          gtk_print_operation_get_status             (GtkPrintOperation  *op);
+GDK_AVAILABLE_IN_ALL
+const char *           gtk_print_operation_get_status_string      (GtkPrintOperation  *op);
+GDK_AVAILABLE_IN_ALL
+gboolean                gtk_print_operation_is_finished            (GtkPrintOperation  *op);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_cancel                 (GtkPrintOperation  *op);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_draw_page_finish       (GtkPrintOperation  *op);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_defer_drawing      (GtkPrintOperation  *op);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_support_selection  (GtkPrintOperation  *op,
+                                                                    gboolean            support_selection);
+GDK_AVAILABLE_IN_ALL
+gboolean                gtk_print_operation_get_support_selection  (GtkPrintOperation  *op);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_has_selection      (GtkPrintOperation  *op,
+                                                                    gboolean            has_selection);
+GDK_AVAILABLE_IN_ALL
+gboolean                gtk_print_operation_get_has_selection      (GtkPrintOperation  *op);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_operation_set_embed_page_setup   (GtkPrintOperation  *op,
+                                                                    gboolean            embed);
+GDK_AVAILABLE_IN_ALL
+gboolean                gtk_print_operation_get_embed_page_setup   (GtkPrintOperation  *op);
+GDK_AVAILABLE_IN_ALL
+int                     gtk_print_operation_get_n_pages_to_print   (GtkPrintOperation  *op);
+
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup           *gtk_print_run_page_setup_dialog            (GtkWindow          *parent,
+                                                                    GtkPageSetup       *page_setup,
+                                                                    GtkPrintSettings   *settings);
+
+/**
+ * GtkPageSetupDoneFunc:
+ * @page_setup: the `GtkPageSetup` that has been passed to
+ *   gtk_print_run_page_setup_dialog_async()
+ * @data: (closure): user data that has been passed to
+ *   gtk_print_run_page_setup_dialog_async()
+ *
+ * The type of function that is passed to
+ * gtk_print_run_page_setup_dialog_async().
+ *
+ * This function will be called when the page setup dialog
+ * is dismissed, and also serves as destroy notify for @data.
+ */
+typedef void  (* GtkPageSetupDoneFunc) (GtkPageSetup *page_setup,
+                                        gpointer      data);
+
+GDK_AVAILABLE_IN_ALL
+void                    gtk_print_run_page_setup_dialog_async      (GtkWindow            *parent,
+                                                                    GtkPageSetup         *page_setup,
+                                                                    GtkPrintSettings     *settings,
+                                                                    GtkPageSetupDoneFunc  done_cb,
+                                                                    gpointer              data);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintOperation, g_object_unref)
+
+G_END_DECLS
+
diff --git a/gtk/print/gtkprintoperationpreview.h b/gtk/print/gtkprintoperationpreview.h
new file mode 100644 (file)
index 0000000..b5b952f
--- /dev/null
@@ -0,0 +1,83 @@
+/* GTK - The GIMP Toolkit
+ * gtkprintoperationpreview.h: Abstract print preview interface
+ * Copyright (C) 2006, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <cairo.h>
+#include <gtk/print/gtkprintcontext.h>
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_PRINT_OPERATION_PREVIEW                  (gtk_print_operation_preview_get_type ())
+#define GTK_PRINT_OPERATION_PREVIEW(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_OPERATION_PREVIEW, GtkPrintOperationPreview))
+#define GTK_IS_PRINT_OPERATION_PREVIEW(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_OPERATION_PREVIEW))
+#define GTK_PRINT_OPERATION_PREVIEW_GET_IFACE(obj)        (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GTK_TYPE_PRINT_OPERATION_PREVIEW, GtkPrintOperationPreviewIface))
+
+typedef struct _GtkPrintOperationPreview      GtkPrintOperationPreview;      /*dummy typedef */
+typedef struct _GtkPrintOperationPreviewIface GtkPrintOperationPreviewIface;
+
+
+struct _GtkPrintOperationPreviewIface
+{
+  GTypeInterface g_iface;
+
+  /* signals */
+  void              (*ready)          (GtkPrintOperationPreview *preview,
+                                      GtkPrintContext          *context);
+  void              (*got_page_size)  (GtkPrintOperationPreview *preview,
+                                      GtkPrintContext          *context,
+                                      GtkPageSetup             *page_setup);
+
+  /* methods */
+  void              (*render_page)    (GtkPrintOperationPreview *preview,
+                                      int                       page_nr);
+  gboolean          (*is_selected)    (GtkPrintOperationPreview *preview,
+                                      int                       page_nr);
+  void              (*end_preview)    (GtkPrintOperationPreview *preview);
+
+  /* Padding for future expansion */
+  void (*_gtk_reserved1) (void);
+  void (*_gtk_reserved2) (void);
+  void (*_gtk_reserved3) (void);
+  void (*_gtk_reserved4) (void);
+  void (*_gtk_reserved5) (void);
+  void (*_gtk_reserved6) (void);
+  void (*_gtk_reserved7) (void);
+  void (*_gtk_reserved8) (void);
+};
+
+GDK_AVAILABLE_IN_ALL
+GType   gtk_print_operation_preview_get_type       (void) G_GNUC_CONST;
+
+GDK_AVAILABLE_IN_ALL
+void     gtk_print_operation_preview_render_page (GtkPrintOperationPreview *preview,
+                                                 int                       page_nr);
+GDK_AVAILABLE_IN_ALL
+void     gtk_print_operation_preview_end_preview (GtkPrintOperationPreview *preview);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_operation_preview_is_selected (GtkPrintOperationPreview *preview,
+                                                 int                       page_nr);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintOperationPreview, g_object_unref)
+
+G_END_DECLS
+
diff --git a/gtk/print/gtkprintsettings.h b/gtk/print/gtkprintsettings.h
new file mode 100644 (file)
index 0000000..e3e5102
--- /dev/null
@@ -0,0 +1,353 @@
+/* GTK - The GIMP Toolkit
+ * gtkprintsettings.h: Print Settings
+ * Copyright (C) 2006, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <gtk/print/gtkpapersize.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GtkPrintSettings GtkPrintSettings;
+
+#define GTK_TYPE_PRINT_SETTINGS    (gtk_print_settings_get_type ())
+#define GTK_PRINT_SETTINGS(obj)    (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_SETTINGS, GtkPrintSettings))
+#define GTK_IS_PRINT_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_SETTINGS))
+
+typedef void  (*GtkPrintSettingsFunc)  (const char *key,
+                                       const char *value,
+                                       gpointer     user_data);
+
+typedef struct _GtkPageRange GtkPageRange;
+
+/**
+ * GtkPageRange:
+ * @start: start of page range.
+ * @end: end of page range.
+ *
+ * A range of pages to print.
+ *
+ * See also [method@Gtk.PrintSettings.set_page_ranges].
+ */
+struct _GtkPageRange
+{
+  int start;
+  int end;
+};
+
+GDK_AVAILABLE_IN_ALL
+GType             gtk_print_settings_get_type                (void) G_GNUC_CONST;
+GDK_AVAILABLE_IN_ALL
+GtkPrintSettings *gtk_print_settings_new                     (void);
+
+GDK_AVAILABLE_IN_ALL
+GtkPrintSettings *gtk_print_settings_copy                    (GtkPrintSettings     *other);
+
+GDK_AVAILABLE_IN_ALL
+GtkPrintSettings *gtk_print_settings_new_from_file           (const char           *file_name,
+                                                             GError              **error);
+GDK_AVAILABLE_IN_ALL
+gboolean          gtk_print_settings_load_file               (GtkPrintSettings     *settings,
+                                                             const char           *file_name,
+                                                             GError              **error);
+GDK_AVAILABLE_IN_ALL
+gboolean          gtk_print_settings_to_file                 (GtkPrintSettings     *settings,
+                                                             const char           *file_name,
+                                                             GError              **error);
+GDK_AVAILABLE_IN_ALL
+GtkPrintSettings *gtk_print_settings_new_from_key_file       (GKeyFile             *key_file,
+                                                             const char           *group_name,
+                                                             GError              **error);
+GDK_AVAILABLE_IN_ALL
+gboolean          gtk_print_settings_load_key_file           (GtkPrintSettings     *settings,
+                                                             GKeyFile             *key_file,
+                                                             const char           *group_name,
+                                                             GError              **error);
+GDK_AVAILABLE_IN_ALL
+void              gtk_print_settings_to_key_file             (GtkPrintSettings     *settings,
+                                                             GKeyFile             *key_file,
+                                                             const char           *group_name);
+GDK_AVAILABLE_IN_ALL
+gboolean          gtk_print_settings_has_key                 (GtkPrintSettings     *settings,
+                                                             const char           *key);
+GDK_AVAILABLE_IN_ALL
+const char *     gtk_print_settings_get                     (GtkPrintSettings     *settings,
+                                                             const char           *key);
+GDK_AVAILABLE_IN_ALL
+void              gtk_print_settings_set                     (GtkPrintSettings     *settings,
+                                                             const char           *key,
+                                                             const char           *value);
+GDK_AVAILABLE_IN_ALL
+void              gtk_print_settings_unset                   (GtkPrintSettings     *settings,
+                                                             const char           *key);
+GDK_AVAILABLE_IN_ALL
+void              gtk_print_settings_foreach                 (GtkPrintSettings     *settings,
+                                                             GtkPrintSettingsFunc  func,
+                                                             gpointer              user_data);
+GDK_AVAILABLE_IN_ALL
+gboolean          gtk_print_settings_get_bool                (GtkPrintSettings     *settings,
+                                                             const char           *key);
+GDK_AVAILABLE_IN_ALL
+void              gtk_print_settings_set_bool                (GtkPrintSettings     *settings,
+                                                             const char           *key,
+                                                             gboolean              value);
+GDK_AVAILABLE_IN_ALL
+double            gtk_print_settings_get_double              (GtkPrintSettings     *settings,
+                                                             const char           *key);
+GDK_AVAILABLE_IN_ALL
+double            gtk_print_settings_get_double_with_default (GtkPrintSettings     *settings,
+                                                             const char           *key,
+                                                             double                def);
+GDK_AVAILABLE_IN_ALL
+void              gtk_print_settings_set_double              (GtkPrintSettings     *settings,
+                                                             const char           *key,
+                                                             double                value);
+GDK_AVAILABLE_IN_ALL
+double            gtk_print_settings_get_length              (GtkPrintSettings     *settings,
+                                                             const char           *key,
+                                                             GtkUnit               unit);
+GDK_AVAILABLE_IN_ALL
+void              gtk_print_settings_set_length              (GtkPrintSettings     *settings,
+                                                             const char           *key,
+                                                             double                value,
+                                                             GtkUnit               unit);
+GDK_AVAILABLE_IN_ALL
+int               gtk_print_settings_get_int                 (GtkPrintSettings     *settings,
+                                                             const char           *key);
+GDK_AVAILABLE_IN_ALL
+int               gtk_print_settings_get_int_with_default    (GtkPrintSettings     *settings,
+                                                             const char           *key,
+                                                             int                   def);
+GDK_AVAILABLE_IN_ALL
+void              gtk_print_settings_set_int                 (GtkPrintSettings     *settings,
+                                                             const char           *key,
+                                                             int                   value);
+
+#define GTK_PRINT_SETTINGS_PRINTER          "printer"
+#define GTK_PRINT_SETTINGS_ORIENTATION      "orientation"
+#define GTK_PRINT_SETTINGS_PAPER_FORMAT     "paper-format"
+#define GTK_PRINT_SETTINGS_PAPER_WIDTH      "paper-width"
+#define GTK_PRINT_SETTINGS_PAPER_HEIGHT     "paper-height"
+#define GTK_PRINT_SETTINGS_N_COPIES         "n-copies"
+#define GTK_PRINT_SETTINGS_DEFAULT_SOURCE   "default-source"
+#define GTK_PRINT_SETTINGS_QUALITY          "quality"
+#define GTK_PRINT_SETTINGS_RESOLUTION       "resolution"
+#define GTK_PRINT_SETTINGS_USE_COLOR        "use-color"
+#define GTK_PRINT_SETTINGS_DUPLEX           "duplex"
+#define GTK_PRINT_SETTINGS_COLLATE          "collate"
+#define GTK_PRINT_SETTINGS_REVERSE          "reverse"
+#define GTK_PRINT_SETTINGS_MEDIA_TYPE       "media-type"
+#define GTK_PRINT_SETTINGS_DITHER           "dither"
+#define GTK_PRINT_SETTINGS_SCALE            "scale"
+#define GTK_PRINT_SETTINGS_PRINT_PAGES      "print-pages"
+#define GTK_PRINT_SETTINGS_PAGE_RANGES      "page-ranges"
+#define GTK_PRINT_SETTINGS_PAGE_SET         "page-set"
+#define GTK_PRINT_SETTINGS_FINISHINGS       "finishings"
+#define GTK_PRINT_SETTINGS_NUMBER_UP        "number-up"
+#define GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT "number-up-layout"
+#define GTK_PRINT_SETTINGS_OUTPUT_BIN       "output-bin"
+#define GTK_PRINT_SETTINGS_RESOLUTION_X     "resolution-x"
+#define GTK_PRINT_SETTINGS_RESOLUTION_Y     "resolution-y"
+#define GTK_PRINT_SETTINGS_PRINTER_LPI      "printer-lpi"
+
+/**
+ * GTK_PRINT_SETTINGS_OUTPUT_DIR:
+ *
+ * The key used by the “Print to file” printer to store the
+ * directory to which the output should be written.
+ */
+#define GTK_PRINT_SETTINGS_OUTPUT_DIR       "output-dir"
+
+/**
+ * GTK_PRINT_SETTINGS_OUTPUT_BASENAME:
+ *
+ * The key used by the “Print to file” printer to store the file
+ * name of the output without the path to the directory and the
+ * file extension.
+ */
+#define GTK_PRINT_SETTINGS_OUTPUT_BASENAME  "output-basename"
+
+/**
+ * GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT:
+ *
+ * The key used by the “Print to file” printer to store the format
+ * of the output. The supported values are “PS” and “PDF”.
+ */
+#define GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT  "output-file-format"
+
+/**
+ * GTK_PRINT_SETTINGS_OUTPUT_URI:
+ *
+ * The key used by the “Print to file” printer to store the URI
+ * to which the output should be written. GTK itself supports
+ * only “file://” URIs.
+ */
+#define GTK_PRINT_SETTINGS_OUTPUT_URI          "output-uri"
+
+#define GTK_PRINT_SETTINGS_WIN32_DRIVER_VERSION "win32-driver-version"
+#define GTK_PRINT_SETTINGS_WIN32_DRIVER_EXTRA   "win32-driver-extra"
+
+/* Helpers: */
+
+GDK_AVAILABLE_IN_ALL
+const char *         gtk_print_settings_get_printer           (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_printer           (GtkPrintSettings   *settings,
+                                                               const char         *printer);
+GDK_AVAILABLE_IN_ALL
+GtkPageOrientation    gtk_print_settings_get_orientation       (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_orientation       (GtkPrintSettings   *settings,
+                                                               GtkPageOrientation  orientation);
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *        gtk_print_settings_get_paper_size        (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_paper_size        (GtkPrintSettings   *settings,
+                                                               GtkPaperSize       *paper_size);
+GDK_AVAILABLE_IN_ALL
+double                gtk_print_settings_get_paper_width       (GtkPrintSettings   *settings,
+                                                               GtkUnit             unit);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_paper_width       (GtkPrintSettings   *settings,
+                                                               double              width,
+                                                               GtkUnit             unit);
+GDK_AVAILABLE_IN_ALL
+double                gtk_print_settings_get_paper_height      (GtkPrintSettings   *settings,
+                                                               GtkUnit             unit);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_paper_height      (GtkPrintSettings   *settings,
+                                                               double              height,
+                                                               GtkUnit             unit);
+GDK_AVAILABLE_IN_ALL
+gboolean              gtk_print_settings_get_use_color         (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_use_color         (GtkPrintSettings   *settings,
+                                                               gboolean            use_color);
+GDK_AVAILABLE_IN_ALL
+gboolean              gtk_print_settings_get_collate           (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_collate           (GtkPrintSettings   *settings,
+                                                               gboolean            collate);
+GDK_AVAILABLE_IN_ALL
+gboolean              gtk_print_settings_get_reverse           (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_reverse           (GtkPrintSettings   *settings,
+                                                               gboolean            reverse);
+GDK_AVAILABLE_IN_ALL
+GtkPrintDuplex        gtk_print_settings_get_duplex            (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_duplex            (GtkPrintSettings   *settings,
+                                                               GtkPrintDuplex      duplex);
+GDK_AVAILABLE_IN_ALL
+GtkPrintQuality       gtk_print_settings_get_quality           (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_quality           (GtkPrintSettings   *settings,
+                                                               GtkPrintQuality     quality);
+GDK_AVAILABLE_IN_ALL
+int                   gtk_print_settings_get_n_copies          (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_n_copies          (GtkPrintSettings   *settings,
+                                                               int                 num_copies);
+GDK_AVAILABLE_IN_ALL
+int                   gtk_print_settings_get_number_up         (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_number_up         (GtkPrintSettings   *settings,
+                                                               int                 number_up);
+GDK_AVAILABLE_IN_ALL
+GtkNumberUpLayout     gtk_print_settings_get_number_up_layout  (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_number_up_layout  (GtkPrintSettings   *settings,
+                                                               GtkNumberUpLayout   number_up_layout);
+GDK_AVAILABLE_IN_ALL
+int                   gtk_print_settings_get_resolution        (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_resolution        (GtkPrintSettings   *settings,
+                                                               int                 resolution);
+GDK_AVAILABLE_IN_ALL
+int                   gtk_print_settings_get_resolution_x      (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+int                   gtk_print_settings_get_resolution_y      (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_resolution_xy     (GtkPrintSettings   *settings,
+                                                               int                 resolution_x,
+                                                               int                 resolution_y);
+GDK_AVAILABLE_IN_ALL
+double                gtk_print_settings_get_printer_lpi       (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_printer_lpi       (GtkPrintSettings   *settings,
+                                                               double              lpi);
+GDK_AVAILABLE_IN_ALL
+double                gtk_print_settings_get_scale             (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_scale             (GtkPrintSettings   *settings,
+                                                               double              scale);
+GDK_AVAILABLE_IN_ALL
+GtkPrintPages         gtk_print_settings_get_print_pages       (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_print_pages       (GtkPrintSettings   *settings,
+                                                               GtkPrintPages       pages);
+GDK_AVAILABLE_IN_ALL
+GtkPageRange *        gtk_print_settings_get_page_ranges       (GtkPrintSettings   *settings,
+                                                               int                *num_ranges);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_page_ranges       (GtkPrintSettings   *settings,
+                                                               GtkPageRange       *page_ranges,
+                                                               int                 num_ranges);
+GDK_AVAILABLE_IN_ALL
+GtkPageSet            gtk_print_settings_get_page_set          (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_page_set          (GtkPrintSettings   *settings,
+                                                               GtkPageSet          page_set);
+GDK_AVAILABLE_IN_ALL
+const char *         gtk_print_settings_get_default_source    (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_default_source    (GtkPrintSettings   *settings,
+                                                               const char         *default_source);
+GDK_AVAILABLE_IN_ALL
+const char *         gtk_print_settings_get_media_type        (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_media_type        (GtkPrintSettings   *settings,
+                                                               const char         *media_type);
+GDK_AVAILABLE_IN_ALL
+const char *         gtk_print_settings_get_dither            (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_dither            (GtkPrintSettings   *settings,
+                                                               const char         *dither);
+GDK_AVAILABLE_IN_ALL
+const char *         gtk_print_settings_get_finishings        (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_finishings        (GtkPrintSettings   *settings,
+                                                               const char         *finishings);
+GDK_AVAILABLE_IN_ALL
+const char *         gtk_print_settings_get_output_bin        (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+void                  gtk_print_settings_set_output_bin        (GtkPrintSettings   *settings,
+                                                               const char         *output_bin);
+
+GDK_AVAILABLE_IN_ALL
+GVariant             *gtk_print_settings_to_gvariant           (GtkPrintSettings   *settings);
+GDK_AVAILABLE_IN_ALL
+GtkPrintSettings     *gtk_print_settings_new_from_gvariant     (GVariant           *variant);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintSettings, g_object_unref)
+
+G_END_DECLS
+
diff --git a/gtk/print/meson.build b/gtk/print/meson.build
new file mode 100644 (file)
index 0000000..8028cd5
--- /dev/null
@@ -0,0 +1,8 @@
+gtk_print_headers = files([
+  'gtkpagesetup.h',
+  'gtkpapersize.h',
+  'gtkprintcontext.h',
+  'gtkprintoperation.h',
+  'gtkprintoperationpreview.h',
+  'gtkprintsettings.h',
+])